﻿using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Pay.TO;

namespace Pay.DTO {
	/// <summary>
	/// 代收签约请求－－银行卡管理获取验证码
	/// </summary>
	public class verify_model : head_req {
		/// <summary>
		/// 户名
		/// </summary>
		public string account_name { get; set; }
		/// <summary>
		/// 银行名称
		/// </summary>
		public string bank_name { get; set; }
		/// <summary>
		/// 账号
		/// </summary>
		public string account_no { get; set; }
		/// <summary>
		/// 身份证
		/// </summary>
		public string id_card { get; set; }
		/// <summary>
		/// 预留手机号码
		/// </summary>
		public string mobile { get; set; }
		/// <summary>
		/// 失效日期
		/// </summary>
		public string expire { get; set; }
		/// <summary>
		/// CVV2码
		/// </summary>
		public string cvv2 { get; set; }
	}
	/// <summary>
	/// 代收签约提交短信验证码
	/// </summary>
	public class verify_model_sms : head_req {
		/// <summary>
		/// 签约交易流水号
		/// </summary>
		public string orig_tran_id { get; set; }
		/// <summary>
		/// 短信验证码
		/// </summary>
		public string code { get; set; }
	}
	/// <summary>
	/// 实名
	/// </summary>
	[JsonObject(MemberSerialization.OptOut)]
	public class verify_auth_model : head_req {
		public verify_auth_model() {
			payments = new List<merchant_payment_ex>();
			merchant_nos = new Dictionary<PayChannel, string>();
		}
		/// <summary>
		/// 类型：增加add,修改edit
		/// </summary>
		public string type { get; set; }
		/// <summary>
		/// 对内使用的字段，默认是0做实名认证，1时不做实名
		/// </summary>
		public int no_auth { get; set; }
		/// <summary>
		/// 用户唯一id，由调用接口传入的用户唯一编号，增加和修改都必须传
		/// </summary>
		public string openid { get; set; }
		/// <summary>
		/// 注册账户－手机号码
		/// </summary>
		public string reg_mobile { get; set; }
		/// <summary>
		/// 户名
		/// </summary>
		public string account_name { get; set; }
		/// <summary>
		/// 银行编号
		/// </summary>
		public string bank_code { get; set; }
		/// <summary>
		/// 银行名称
		/// </summary>
		public string bank_name { get; set; }
		/// <summary>
		/// 支行编号
		/// </summary>
		public string branch_code { get; set; }
		/// <summary>
		/// 支行名称
		/// </summary>
		public string branch_name { get; set; }
		/// <summary>
		/// 账号
		/// </summary>
		public string account_no { get; set; }
		/// <summary>
		/// 身份证
		/// </summary>
		public string id_card { get; set; }
		/// <summary>
		/// 预留手机号码
		/// </summary>
		public string mobile { get; set; }
		/// <summary>
		/// 身份证＋银行卡正面照
		/// </summary>
		public string card_positive { get; set; }
		/// <summary>
		/// 身份证反面照
		/// </summary>
		public string card_negative { get; set; }
		/// <summary>
		/// 手持身份证+银行卡
		/// </summary>
		public string card_handheld { get; set; }
		/// <summary>
		/// 银行卡反面
		/// </summary>
		public string bank_negative { get; set; }
		/// <summary>
		/// 银行卡正面
		/// </summary>
		public string bank_positive { get; set; }
		/// <summary>
		/// 身份证有效期开始时间
		/// </summary>
		public string start_time { get; set; }
		/// <summary>
		/// 身份证有效期结束时间
		/// </summary>
		public string end_time { get; set; }
		/// <summary>
		/// 通知URL
		/// </summary>
		public string notify { get; set; }
		/// <summary>
		/// 省
		/// </summary>
		public string province { get; set; }
		/// <summary>
		/// 市
		/// </summary>
		public string city { get; set; }
		/// <summary>
		/// 区
		/// </summary>
		public string area { get; set; }
		/// <summary>
		/// 县区id
		/// </summary>
		public long region_id { get; set; }
		/// <summary>
		/// 支付方式
		/// </summary>
		public List<merchant_payment_ex> payments { get; set; }

		/// <summary>
		/// 通道进件商户号集合:返回数据使用
		/// </summary>
		/// <value>The merchant nos.</value>
		public Dictionary<PayChannel, string> merchant_nos { get; set; }
	}

	/// <summary>
	/// 批量进件请求
	/// </summary>
	[Serializable]
	public class batch_auth_model : head_req {
		public batch_auth_model() {
			data = new List<batch_auth_model_item>();
		}
		/// <summary>
		/// 类型：增加add,修改edit
		/// </summary>
		public string type { get; set; }
		/// <summary>
		/// 进件集合
		/// </summary>
		public List<batch_auth_model_item> data { get; set; }
	}

	[Serializable]
	public class batch_auth_model_item {
		public batch_auth_model_item() {
			payments = new List<merchant_payment_ex>();
			merchant_nos = new Dictionary<PayChannel, string>();
		}
		/// <summary>
		/// 对内使用的字段，默认是0做实名认证，1时不做实名
		/// </summary>
		public int no_auth { get; set; }
		/// <summary>
		/// 用户唯一id，由调用接口传入的用户唯一编号，增加和修改都必须传
		/// </summary>
		public string openid { get; set; }
		/// <summary>
		/// 注册账户－手机号码
		/// </summary>
		public string reg_mobile { get; set; }
		/// <summary>
		/// 户名
		/// </summary>
		public string account_name { get; set; }
		/// <summary>
		/// 银行编号
		/// </summary>
		public string bank_code { get; set; }
		/// <summary>
		/// 银行名称
		/// </summary>
		public string bank_name { get; set; }
		/// <summary>
		/// 支行编号
		/// </summary>
		public string branch_code { get; set; }
		/// <summary>
		/// 支行名称
		/// </summary>
		public string branch_name { get; set; }
		/// <summary>
		/// 账号
		/// </summary>
		public string account_no { get; set; }
		/// <summary>
		/// 身份证
		/// </summary>
		public string id_card { get; set; }
		/// <summary>
		/// 预留手机号码
		/// </summary>
		public string mobile { get; set; }
		/// <summary>
		/// 身份证＋银行卡正面照
		/// </summary>
		public string card_positive { get; set; }
		/// <summary>
		/// 身份证反面照
		/// </summary>
		public string card_negative { get; set; }
		/// <summary>
		/// 手持身份证+银行卡
		/// </summary>
		public string card_handheld { get; set; }
		/// <summary>
		/// 银行卡反面
		/// </summary>
		public string bank_negative { get; set; }
		/// <summary>
		/// 银行卡正面
		/// </summary>
		public string bank_positive { get; set; }
		/// <summary>
		/// 身份证有效期开始时间
		/// </summary>
		public string start_time { get; set; }
		/// <summary>
		/// 身份证有效期结束时间
		/// </summary>
		public string end_time { get; set; }
		/// <summary>
		/// 通知URL
		/// </summary>
		public string notify { get; set; }
		/// <summary>
		/// 省
		/// </summary>
		public string province { get; set; }
		/// <summary>
		/// 市
		/// </summary>
		public string city { get; set; }
		/// <summary>
		/// 区
		/// </summary>
		public string area { get; set; }
		/// <summary>
		/// 县区id
		/// </summary>
		public long region_id { get; set; }
		/// <summary>
		/// 支付方式
		///</summary>
		public List<merchant_payment_ex> payments { get; set; }

		/// <summary>
		/// 通道进件商户号集合
		/// </summary>
		/// <value>The merchant nos.</value>
		public Dictionary<PayChannel, string> merchant_nos { get; set; }
	}

	/// <summary>
	/// 商户支付方式
	/// </summary>
	[Serializable]
	public class merchant_payment {
		public merchant_payment() {
			settles = new List<settle_setting>();
		}

		/// <summary>
		/// 通道
		/// </summary>
		public PayChannel channel { get; set; }
		/// <summary>
		/// 结算方式
		/// </summary>
		public List<settle_setting> settles { get; set; }
	}

	/// <summary>
	/// 商户支付方式
	/// </summary>
	[Serializable]
	public class merchant_payment_ex {
		public merchant_payment_ex() {
		}

		/// <summary>
		/// 通道
		/// </summary>
		public PayChannel channel { get; set; }
		/// <summary>
		/// 支付方式：ALIPAY_QR，WXPAY_QR，JDPAY_QR,WXPAY_JS,ALIPAY_JS,UNIONPAY，GATEWAY,PAYOFF
		/// </summary>
		public string code { get; set; }
		/// <summary>
		/// 费率
		/// </summary>
		public decimal fee { get; set; }
		/// <summary>
		/// 结算费
		/// </summary>
		public decimal settle { get; set; }
		/// <summary>
		/// 结算类型:T0,T1
		/// </summary>
		public string settle_type { get; set; }
	}

	/// <summary>
	/// 进件响应：商户号
	/// </summary>
	[Serializable]
	public class merchant_register_result : ApiResultMessage {
		/// <summary>
		/// 用户唯一id，由调用接口传入的用户唯一编号，增加和修改都必须传
		/// </summary>
		public string openid { get; set; }
		/// <summary>
		/// 进件商户号
		/// </summary>
		public string merchant_no { get; set; }
		/// <summary>
		/// 状态 1：待审核 3：审核通过
		/// </summary>
		public AuthStatusEnum status { get; set; }
	}

	/// <summary>
	/// 增加商户请求
	/// </summary>
	public class add_merchant_model : head_req {
		/// <summary>
		/// 手机号码
		/// </summary>
		public string mobile { get; set; }
		/// <summary>
		/// 昵称
		/// </summary>
		public string name { get; set; }
		/// <summary>
		/// 用户唯一id，由调用接口传入的用户唯一编号，增加和修改都必须传
		/// </summary>
		public string openid { get; set; }
	}

	/// <summary>
	/// 批量进件响应参数
	/// </summary>
	public class verify_auth_result {
		/// <summary>
		/// 用户唯一id，由调用接口传入的用户唯一编号，增加和修改都必须传
		/// </summary>
		public string openid { get; set; }
		/// <summary>
		/// 进件商户号
		/// </summary>
		public string merchant_no { get; set; }
		/// <summary>
		/// 状态 1：待审核 3：审核通过
		/// </summary>
		public AuthStatusEnum status { get; set; }
	}

	/// <summary>
	/// 批量进件响应参数
	/// </summary>
	public class verify_auth_ex_result : ApiResultMessage {
		public verify_auth_ex_result() {
			data = new List<verify_auth_result>();
		}
		/// <summary>
		/// 进件商户集合
		/// </summary>
		public List<verify_auth_result> data { get; set; }
	}
}
